<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>{include}</title>
<meta name="generator" content="DocBook XSL Stylesheets V1.75.1">
<link rel="home" href="index.html" title="Smarty マニュアル">
<link rel="up" href="language.builtin.functions.html" title="Chapter 7. 組み込み関数">
<link rel="prev" href="language.function.if.html" title="{if},{elseif},{else}">
<link rel="next" href="language.function.include.php.html" title="{include_php}">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<div class="navheader">
<table width="100%" summary="Navigation header">
<tr><th colspan="3" align="center">{include}</th></tr>
<tr>
<td width="20%" align="left">
<a accesskey="p" href="language.function.if.html">Prev</a> </td>
<th width="60%" align="center">Chapter 7. 組み込み関数</th>
<td width="20%" align="right"> <a accesskey="n" href="language.function.include.php.html">Next</a>
</td>
</tr>
</table>
<hr>
</div>
<div class="sect1" title="{include}">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="language.function.include"></a>{include}</h2></div></div></div>
<p>
  <code class="varname">{include}</code> タグを使用して、
  現在のテンプレートに他のテンプレートをインクルードします。
  現在のテンプレートにて利用可能なあらゆる変数は、
  インクルードされたテンプレートでも同じく利用可能です。
  </p>
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
<li class="listitem"><p>
  <code class="varname">{include}</code> タグには、テンプレートリソースのパスを含んだ
  <em class="parameter"><code>file</code></em> 属性を必ず指定する必要があります。
  </p></li>
<li class="listitem"><p>
  <code class="varname">{include}</code> の出力をブラウザに表示する代わりに変数に格納したい場合は、
  オプションの <em class="parameter"><code>assign</code></em> 属性にその変数名を定義します。
  <a class="link" href="language.custom.functions.html#language.function.assign" title="{assign}"><code class="varname">{assign}</code></a>
  と同等です。
 </p></li>
<li class="listitem"><p>
  インクルードされたテンプレートに変数を渡すには、
  <a class="link" href="language.syntax.attributes.html" title="属性">attributes</a>
  を使用します。インクルードされたテンプレートに明示的に渡された変数は、
  インクルードされたファイルのスコープでのみ有効となります。
  そのテンプレートに同じ名前の変数が存在する場合は、
  渡された変数がそれをオーバーライドします。
 </p></li>
<li class="listitem"><p>
  全ての割り当て変数の値は、インクルードされたテンプレートのスコープが閉じた後に元に戻ります。
  これは、インクルードされたテンプレート内で全ての変数を使用可能であるということです。
  しかし、インクルードされたテンプレート内での変数の変更は
  <code class="varname">{include}</code>
  の後でインクルードしている側のテンプレート内では見ることはできません。
  </p></li>
<li class="listitem"><p>
  <a class="link" href="api.variables.html#variable.template.dir" title="$template_dir"><em class="parameter"><code>$template_dir</code></em></a>
  ディレクトリ外にあるファイルを <code class="varname">{include}</code> するには、
  <a class="link" href="template.resources.html" title="テンプレートリソース">テンプレートリソース</a> を指定します。
  </p></li>
</ul></div>
<div class="informaltable"><table border="1">
<colgroup>
<col align="center">
<col align="center">
<col align="center">
<col align="center">
<col>
</colgroup>
<thead><tr>
<th align="center">属性名</th>
<th align="center">型</th>
<th align="center">必須</th>
<th align="center">デフォルト</th>
<th>概要</th>
</tr></thead>
<tbody>
<tr>
<td align="center">file</td>
<td align="center">string</td>
<td align="center">Yes</td>
<td align="center"><span class="emphasis"><em>n/a</em></span></td>
<td>インクルードするテンプレートファイル名</td>
</tr>
<tr>
<td align="center">assign</td>
<td align="center">string</td>
<td align="center">No</td>
<td align="center"><span class="emphasis"><em>n/a</em></span></td>
<td>インクルードしたコンテンツの出力を格納する変数名</td>
</tr>
<tr>
<td align="center">[var ...]</td>
<td align="center">[var type]</td>
<td align="center">No</td>
<td align="center"><span class="emphasis"><em>n/a</em></span></td>
<td>ローカルからテンプレートに渡す変数</td>
</tr>
</tbody>
</table></div>
<div class="example">
<a name="id2776414"></a><p class="title"><b>Example 7.17. シンプルな {include} の例</b></p>
<div class="example-contents"><pre class="programlisting">

&lt;html&gt;
&lt;head&gt;
  &lt;title&gt;{$title}&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;
{include file='page_header.tpl'}

{* ここにテンプレートの本体を記述します。変数 $tpl_name
   はたとえば 'contact.tpl' などに置き換えられます。
*}
{include file="$tpl_name.tpl"}

{include file='page_footer.tpl'}
&lt;/body&gt;
&lt;/html&gt;

  </pre></div>
</div>
<br class="example-break"><div class="example">
<a name="id2776427"></a><p class="title"><b>Example 7.18. {include} に変数を渡す</b></p>
<div class="example-contents">
<pre class="programlisting">

{include file='links.tpl' title='Newest links' links=$link_array}
{* ここにテンプレートの本体を記述します *}
{include file='footer.tpl' foo='bar'}

  </pre>
<p>このテンプレートは、以下のような <code class="filename">links.tpl</code> をインクルードします。</p>
<pre class="programlisting">

&lt;div id="box"&gt;
&lt;h3&gt;{$title}{/h3&gt;
&lt;ul&gt;
{foreach from=$links item=l}
.. 何かを行います  ...
&lt;/foreach}
&lt;/ul&gt;
&lt;/div&gt;

</pre>
</div>
</div>
<br class="example-break"><div class="example">
<a name="id2776473"></a><p class="title"><b>Example 7.19. {include} と変数への割り当て</b></p>
<div class="example-contents">
<p>この例は、<code class="filename">nav.tpl</code>
    の内容を変数 <code class="varname">$navbar</code> に割り当て、
    ページの最初と最後に出力させるものです。
   </p>
<pre class="programlisting">
 
&lt;body&gt;
  {include file='nav.tpl' assign=navbar}
  {include file='header.tpl' title='Smarty is cool'}
    {$navbar}
    {* テンプレートの本体をここへ記述します *}
    {$navbar}
  {include file='footer.tpl'}
&lt;/body&gt;

   </pre>
</div>
</div>
<br class="example-break"><div class="example">
<a name="id2776507"></a><p class="title"><b>Example 7.20. さまざまな {include} リソースの例</b></p>
<div class="example-contents"><pre class="programlisting">

{* ファイルの絶対パス *}
{include file='/usr/local/include/templates/header.tpl'}

{* ファイルの絶対パス(結果は上と同じ) *}
{include file='file:/usr/local/include/templates/header.tpl'}

{* Windows環境のファイルの絶対パス(接頭辞の"file:"は必須) *}
{include file='file:C:/www/pub/templates/header.tpl'}

{* "db"と名付けられたテンプレートリソースからインクルード *}
{include file='db:header.tpl'}

{* 変数名に格納された名前のテンプレートをインクルード - 例 $module = 'contacts' *}
{include file="$module.tpl"}

{* この例は、シングルクォートでは変数が展開されないため、動作しません *}
{include file='$module.tpl'}

{* 複数の可変テンプレートをインクルード - 例 amber/links.view.tpl *}
{include file="$style_dir/$module.$view.tpl"}

  </pre></div>
</div>
<br class="example-break"><p>
  <a class="link" href="language.function.include.php.html" title="{include_php}"><code class="varname">{include_php}</code></a>、
  <a class="link" href="language.function.insert.html" title="{insert}"><code class="varname">{insert}</code></a>、
  <a class="link" href="language.function.php.html" title="{php}"><code class="varname">{php}</code></a>、
  <a class="link" href="template.resources.html" title="テンプレートリソース">テンプレートリソース</a> および
  <a class="link" href="tips.componentized.templates.html" title="コンポーネント化したテンプレート">コンポーネント化したテンプレート</a>
  も参照してください。
 </p>
</div>
<div class="navfooter">
<hr>
<table width="100%" summary="Navigation footer">
<tr>
<td width="40%" align="left">
<a accesskey="p" href="language.function.if.html">Prev</a> </td>
<td width="20%" align="center"><a accesskey="u" href="language.builtin.functions.html">Up</a></td>
<td width="40%" align="right"> <a accesskey="n" href="language.function.include.php.html">Next</a>
</td>
</tr>
<tr>
<td width="40%" align="left" valign="top">{if},{elseif},{else} </td>
<td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td>
<td width="40%" align="right" valign="top"> {include_php}</td>
</tr>
</table>
</div>
</body>
</html>
